Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Swing (Java)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Swing_(Java)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Swing_Java rootpage-Swing_Java skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span lang="en">Swing (Java)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<div class="infobox_v3 infobox infobox--frwiki noarchive" style="width:260px">
<div class="entete icon informatique" style="background-color: #53829e; color: #000000;"><style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}


/* end https://fr.wikipedia.org/ */
</style>
<div><span style="color: #fff;">Swing</span></div>
</div>
<p class="mw-empty-elt">

</p>
<div class="images">
</div>
<div class="legend">Capture d'écran d'une fenêtre d'exemple</div>
<table><caption style="background-color:#53829e;color:#000000;">Informations</caption>

<tbody><tr>
<th scope="row">Créateur</th>
<td>
<a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a></td>
</tr>

<tr>
<th scope="row"><a href="D%C3%A9veloppeur" title="Développeur">Développé par</a></th>
<td>
<a href="Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a></td>
</tr>













<tr>
<th scope="row"> État du projet
</th>
<td>
<span typeof="mw:File"><span></span></span>&nbsp;Maintenance active</td>
</tr>

<tr>
<th scope="row"> <a href="Langage_de_programmation" title="Langage de programmation">Écrit en</a>
</th>
<td>
<span class="wd_p277"><a href="Java_(langage)" title="Java (langage)">Java</a></span></td>
</tr>







<tr>
<th scope="row"><a href="Plateforme_informatique" title="Plateforme informatique">Environnement</a></th>
<td>
<span class="wd_p400"><a href="Machine_virtuelle_Java" title="Machine virtuelle Java">Machine virtuelle Java</a></span></td>
</tr>







<tr>
<th scope="row"><a href="Internationalisation_(informatique)" title="Internationalisation (informatique)">Langues</a></th>
<td>
<a href="Anglais" title="Anglais">Anglais</a></td>
</tr>

<tr>
<th scope="row"> Type
</th>
<td>
<span class="wd_p31">Bibliothèque Java <small>(<a href="https://www.wikidata.org/wiki/Q21127166" class="extiw external" title="d:Q21127166"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small><br><a href="Widget_toolkit" title="Widget toolkit">Widget toolkit</a></span></td>
</tr>

<tr>
<th scope="row"> <a href="Politique_de_distribution" title="Politique de distribution">Politique de distribution</a>
</th>
<td>
Gratuit</td>
</tr>

<tr>
<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a></th>
<td>
<a href="Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">GPL</a></td>
</tr>



<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a></th>
<td>
<span class="wd_p856"><a rel="nofollow" class="external text" href="http://download.oracle.com/javase/6/docs/technotes/guides/swing">download.oracle.com/javase/6/docs/technotes/guides/swing</a></span></td>
</tr>

</tbody></table>
<p class="bloc" style="background-color:#53829e; color:#000000;">Chronologie des versions</p>
<p class="overflow infobox-navigateur navigation-not-searchable" style=""><span class="next_bloc"><a href="JavaFX" title="JavaFX">JavaFX</a></span></p>
</div>
<p><b><span class="lang-en" lang="en">Swing</span></b> est une <a href="Biblioth%C3%A8que_graphique" title="Bibliothèque graphique">bibliothèque graphique</a> pour le <a href="Java_(langage)" title="Java (langage)">langage de programmation Java</a>, faisant partie du package <a href="Java_Foundation_Classes" title="Java Foundation Classes">Java Foundation Classes</a> (JFC), inclus dans <a href="J2SE" class="mw-redirect" title="J2SE">J2SE</a>. Swing constitue l'une des principales évolutions apportées par <a href="Java_2" title="Java 2">Java 2</a> par rapport aux versions antérieures.
</p><p>Swing offre la possibilité de créer des <a href="Graphical_user_interface" class="mw-redirect" title="Graphical user interface">interfaces graphiques</a> identiques quel que soit le <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a> sous-jacent, au prix de performances moindres qu'en utilisant <a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">Abstract Window Toolkit</a> (AWT). Il utilise le principe <a href="Mod%C3%A8le-Vue-Contr%C3%B4leur" class="mw-redirect" title="Modèle-Vue-Contrôleur">Modèle-Vue-Contrôleur</a> (MVC, les composants Swing jouent en fait le rôle de la vue au sens du <a href="Mod%C3%A8le-Vue-Contr%C3%B4leur" class="mw-redirect" title="Modèle-Vue-Contrôleur">MVC</a>) et dispose de plusieurs choix d'apparence pour chacun des composants standards.
</p><p>Avec l'apparition de Java 8 en <time class="nowrap" datetime="2014-03" data-sort-value="2014-03">mars 2014</time>, <a href="JavaFX" title="JavaFX">JavaFX</a> devient la bibliothèque graphique officielle du langage Java, pour toutes les sortes d'application (applications mobiles, applications sur poste de travail, <a href="Application_web" title="Application web">applications Web</a>), le développement de son prédécesseur Swing étant abandonné (sauf pour les corrections de bogues).
</p>

<div class="mw-heading mw-heading2"><h2 id="Relation_avec_AWT">Relation avec AWT</h2></div>
<p>Depuis les premières versions de Java, <a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">Abstract Window Toolkit</a> (AWT) fournit une API indépendante du système d'exploitation pour mettre en œuvre des composants graphiques. Dans AWT, chaque composant est dessiné et contrôlé par un composant tiers natif spécifique au système d'exploitation. C'est pourquoi les composants d'AWT sont appelés <i>composants lourds</i>.
</p><p>Au contraire, les composants Swing sont décrits comme <i>légers</i>. En effet, ils ne requièrent pas d'allocation de ressources natives de la part du <a href="Gestionnaire_de_fen%C3%AAtres" title="Gestionnaire de fenêtres">gestionnaire de fenêtres</a> sous-jacent, mais «&nbsp;empruntent&nbsp;» les ressources de leurs ancêtres.
</p><p>Une grande partie de l'API Swing est une extension complémentaire à AWT plutôt qu'un remplaçant direct. L'affichage est fourni par <a href="Java2D" title="Java2D">Java2D</a>, un autre composant des JFC. Cependant, l'usage conjoint de composants légers et lourds au sein d'une même fenêtre est généralement déconseillé à cause de problèmes de gestion de la profondeur<sup id="cite_ref-mixing_1-0" class="reference"><a href="#cite_note-mixing-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Exemple">Exemple</h2></div>
<p>Le programme suivant est un <a href="Hello_world" title="Hello world">hello world</a> en Swing&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">javax.swing.JFrame</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">javax.swing.JLabel</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">HelloWorld</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// on crée une fenêtre dont le titre est "Hello World!"</span>
<span class="w"> </span><span class="n">JFrame</span><span class="w"> </span><span class="n">frame</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">JFrame</span><span class="p">(</span><span class="s">"Hello World!"</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// la fenêtre doit se fermer quand on clique sur la croix rouge</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setDefaultCloseOperation</span><span class="p">(</span><span class="n">JFrame</span><span class="p">.</span><span class="na">DISPOSE_ON_CLOSE</span><span class="p">);</span>
<span class="w"> </span>
<span class="w"> </span><span class="c1">// on ajoute le texte "Hello, World!" dans la fenêtre</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">getContentPane</span><span class="p">().</span><span class="na">add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">JLabel</span><span class="p">(</span><span class="s">"Hello, World!"</span><span class="p">));</span>
<span class="w"> </span>
<span class="w"> </span><span class="c1">// on demande d'attribuer une taille minimale à la fenêtre</span>
<span class="w"> </span><span class="c1">// (juste assez pour voir tous les composants)</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">pack</span><span class="p">();</span>
<span class="w"> </span><span class="c1">// on centre la fenêtre</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setLocationRelativeTo</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// on rend la fenêtre visible</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setVisible</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}


/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Abstract_Window_Toolkit" title="Abstract Window Toolkit">AWT</a></li>
<li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">SWT</a> et son complément <a href="JFace" title="JFace">JFace</a></li>
<li><a href="JavaFX" title="JavaFX">JavaFX</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/javase/6/docs/technotes/guides/swing/">Documentation de l'API</a></li>
<li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/products/jfc/tsc/articles/architecture/">Architecture de Swing</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Références"><span id="R.C3.A9f.C3.A9rences"></span>Références</h3></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-mixing-1"><span class="mw-cite-backlink"><a href="#cite_ref-mixing_1-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/products/jfc/tsc/articles/mixing/"><i><span class="lang-en" lang="en">Mixing heavy and light components - Sun Developer Network</span></i></a>.</span>
</li>
</ol></div><div class="navbox-container" style="clear:both;">


</div><ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels libres</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-03-11" href="https://fr.wikipedia.org/wiki/?title=Swing_(Java)&amp;oldid=223792713">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>